package com.hanliy.Service;

import com.hanliy.es.document.EsProduct;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Optional;

/**
 * @author hanyulin
 * @apiNote
 * @date 2021/11/24 14:46
 */
public interface EsService {
    /**
     * 新增数据
     * @param product 实体类
     * @author hanyulin
     * @date 2021/11/25 13:45
     */
    void save(EsProduct product);

    /**
     * 插入数据
     *
     * @author hanyulin
     * @date 2021/11/25 13:32
     */
    void saveAll();

    /**
     * 根据id进行删除
     *
     * @param ids ids
     */
    void deleteByIds(List<Long> ids);

    /**
     * 更新
     *
     * @param product 需要更新的实体类
     * @author hanyulin
     * @date 2021/11/25 15:11
     * @return EsProduct
     */
    EsProduct update(EsProduct product);

    Optional<EsProduct> findProductById(Long id);

    /**
     * 对所有查询的结果进行分页
     *
     * @param pageNum 当前页数
     * @param pageSize 每页显示条数
     * @return Page<EsProduct>
     */
    Page<EsProduct> findAll(Integer pageNum, Integer pageSize);

    /**
     * 根据关键字搜索名称或者描述
     *
     * @param keyword 关键词
     * @param pageNum 当前页数
     * @param pageSize 每页显示条数
     * @return Page<EsProduct>
     */
    Page<EsProduct> search(String keyword, Integer pageNum, Integer pageSize);
}
